package org.ehe.business.supplier.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ehe.common.mybatis.core.domain.BaseEntity2;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 供应商实体类信息
 * @author :zhangnn
 * @className :SupplierInfo
 * @description: TODO
 * @date 2025-07-23 09:17:38
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_supplier_info")
public class SupplierInfo extends BaseEntity2 {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 供应商编码
     */
    @TableField("supplier_code")
    private String supplierCode;

    /**
     * 供应商公司名称
     */
    @TableField("supplier_name")
    private String supplierName;

    // ============== 基本信息字段 ==============
    /**
     * 开户行
     */
    @TableField("bank_name")
    private String bankName;

    /**
     * 收款账户
     */
    @TableField("bank_account")
    private String bankAccount;

    /**
     * 税种
     */
    @TableField("tax_type")
    private String taxType;

    /**
     * 税率(%)
     */
    @TableField("tax_rate")
    private BigDecimal taxRate;

    /**
     * 供应产品类别
     */
    @TableField("product_category")
    private String productCategory;

    /**
     * 当前等级
     */
    @TableField("current_level")
    private String currentLevel;

    @TableField("contact_region_code")
    private String contactRegionCode;

    /**
     * 联系地址(省/市/区)
     */
    @TableField("contact_region")
    private String contactRegion;

    /**
     * 详细地址
     */
    @TableField("detailed_address")
    private String detailedAddress;

    // ============== 营业执照OCR识别字段 ==============
    /**
     * 社会信用代码
     */
    @TableField("social_credit_code")
    private String socialCreditCode;

    /**
     * 营业执照-单位名称
     */
    @TableField("company_name")
    private String companyName;

    /**
     * 法定代表人
     */
    @TableField("legal_person")
    private String legalPerson;

    /**
     * 注册地址
     */
    @TableField("registered_address")
    private String registeredAddress;

    /**
     * 成立日期
     */
    @TableField("establish_date")
    private String establishDate;

    /**
     * 营业期限/有效期
     */
    @TableField("business_period")
    private String businessPeriod;

    /**
     * 经营范围
     */
    @TableField("business_scope")
    private String businessScope;

    /**
     * 注册资本
     */
    @TableField("registered_capital")
    private String registeredCapital;

    /**
     * 证件编号
     */
    @TableField("certificate_number")
    private String certificateNumber;

    /**
     * 类型/组织形式
     */
    @TableField("company_type")
    private String companyType;

    // ============== 扩展营业执照信息字段 ==============
    /**
     * 核准日期
     */
    @TableField("approval_date")
    private String approvalDate;

    /**
     * 登记机关
     */
    @TableField("registration_authority")
    private String registrationAuthority;

    /**
     * 经营状态
     */
    @TableField("business_status")
    private String businessStatus;

    // ============== 业务管理字段 ==============
    /**
     * 供应商状态(0:停用 1:启用)
     */
    @TableField("supplier_status")
    private Integer supplierStatus;

    /**
     * 合作开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("cooperation_start_date")
    private LocalDate cooperationStartDate;

    /**
     * 最后合作日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("last_cooperation_date")
    private LocalDate lastCooperationDate;

    /**
     * 信用等级
     */
    @TableField("credit_rating")
    private String creditRating;

    /**
     * 付款条件
     */
    @TableField("payment_terms")
    private String paymentTerms;

    /**
     * 交货周期(天)
     */
    @TableField("delivery_cycle")
    private Integer deliveryCycle;

    /**
     * 质量等级
     */
    @TableField("quality_grade")
    private String qualityGrade;

    // ============== 联系信息 ==============
    /**
     * 联系人
     */
    @TableField("contact_person")
    private String contactPerson;

    /**
     * 联系电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 联系邮箱
     */
    @TableField("contact_email")
    private String contactEmail;

    /**
     * 传真号码
     */
    @TableField("fax")
    private String fax;

    /**
     * 官方网站
     */
    @TableField("website")
    private String website;

    // ============== 附件信息 ==============
    /**
     * 营业执照文件路径
     */
    @TableField("business_license_file")
    private String businessLicenseFile;

    /**
     * 其他证件文件(JSON格式)
     */
    @TableField("other_certificates")
    private String otherCertificates;

    // ============== 财务信息 ==============
    /**
     * 开票抬头
     */
    @TableField("invoice_title")
    private String invoiceTitle;

    /**
     * 开票税号
     */
    @TableField("invoice_tax_number")
    private String invoiceTaxNumber;

    /**
     * 开票地址
     */
    @TableField("invoice_address")
    private String invoiceAddress;

    /**
     * 开票电话
     */
    @TableField("invoice_phone")
    private String invoicePhone;

    // ============== OCR识别记录 ==============
    /**
     * OCR识别时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("ocr_recognition_time")
    private LocalDateTime ocrRecognitionTime;

    /**
     * OCR识别置信度
     */
    @TableField("ocr_confidence")
    private BigDecimal ocrConfidence;

    /**
     * 是否已人工核验OCR结果
     */
    @TableField("is_ocr_verified")
    private Integer isOcrVerified;

    // ============== 审计字段 ==============
//    /**
//     * 创建人ID
//     */
//    @TableField("create_by")
//    private Long createBy;



    /**
     * 版本号(乐观锁)
     */
    @Version
    @TableField("version")
    private Integer version;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;
}
